//package com.erebus.utils.impl;
//
//import com.alibaba.nacos.shaded.com.google.protobuf.Message;
//import com.erebus.utils.ChatMemory;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.util.List;
//import java.util.Map;
//import java.util.concurrent.atomic.AtomicLong;
//
///**
// * 源代码有bug
// * 自定义工具
// */
//
//
////todo:
//public class RedisChatMemory implements ChatMemory, AutoCloseable {
//
//    private static final Logger logger = LoggerFactory.getLogger(RedisChatMemory.class);
//
//    private static final String DEFAULT_KEY_PREFIX = "chat";
//
//    private static final String DEFAULT_HOST = "www.erebus77.com";
//    private static final int DEFAULT_PORT = 6379;
//
//    public RedisChatMemory(String host, int port, String password) {
//        // 初始化 Redis 连接
//
//    }
//
//    @Override
//    public void close() throws Exception {
//
//    }
//
//    @Override
//    public void add(String conversationId, List<Message> messages) {
//        String key = DEFAULT_KEY_PREFIX + conversationId;
//        AtomicLong timestamp = new AtomicLong(System.currentTimeMillis());
//        try (Jedis jedis = jedisPool.getResource()) {
//            var pipeline = jedis.pipelined();
//            messages.forEach(message -> {
//                pipeline.hset(key, String.valueOf(timestamp.getAndIncrement()), message.toString());
//            });
//            pipeline.sync();
//        }
//        logger.info("Added messages to conversationId: {}", conversationId);
//    }
//
//    @Override
//    public List<Message> get(String conversationId, int lastN) {
//        String key = DEFAULT_KEY_PREFIX + conversationId;
//        try (Jedis jedis = jedisPool.getResource()) {
//            Map<String, String> allMessages = jedis.hgetAll(key);
//            if (allMessages.isEmpty()) {
//                return List.of();
//            }
//
//            return allMessages.entrySet().stream()
//                    .sorted(e1, e2) -> Long.compare(Long.parseLong(e2.getKey()), Long.parseLong(e1.getKey())))
//            .limit(lastN)
//                    .map(entry -> new UserMessage(entry.getvalue()))
//                    .collect(Collectors.toList());
//
//        }
//    }
//
//    @Override
//    public void clear(String conversationId) {
//
//    }
//}
